home *** CD-ROM | disk | FTP | other *** search
/ SGI Developer Toolbox 6.1 / SGI Developer Toolbox 6.1 - Disc 4.iso / documents / RFC / rfc919.txt < prev    next >
Text File  |  1994-08-01  |  16KB  |  457 lines

  1.  
  2.  
  3. Network Working Group                                      Jeffrey Mogul
  4. Request for Comments: 919                    Computer Science Department
  5.                                                      Stanford University
  6.                                                             October 1984
  7.  
  8.                      BROADCASTING INTERNET DATAGRAMS
  9.  
  10.  
  11. Status of this Memo
  12.  
  13.    We propose simple rules for broadcasting Internet datagrams on local
  14.    networks that support broadcast, for addressing broadcasts, and for
  15.    how gateways should handle them.
  16.  
  17.    This RFC suggests a proposed protocol for the ARPA-Internet
  18.    community, and requests discussion and suggestions for improvements.
  19.    Distribution of this memo is unlimited.
  20.  
  21. Acknowledgement
  22.  
  23.    This proposal is the result of discussion with several other people,
  24.    especially J. Noel Chiappa and Christopher A. Kent, both of whom both
  25.    pointed me at important references.
  26.  
  27. 1. Introduction
  28.  
  29.    The use of broadcasts, especially on high-speed local area networks,
  30.    is a good base for many applications.  Since broadcasting is not
  31.    covered in the basic IP specification [13], there is no agreed-upon
  32.    way to do it, and so protocol designers have not made use of it. (The
  33.    issue has been touched upon before, e.g. [6], but has not been the
  34.    subject of a standard.)
  35.  
  36.    We consider here only the case of unreliable, unsequenced, possibly
  37.    duplicated datagram broadcasts (for a discussion of TCP broadcasting,
  38.    see [11].) Even though unreliable and limited in length, datagram
  39.    broadcasts are quite useful [1].
  40.  
  41.    We assume that the data link layer of the local network supports
  42.    efficient broadcasting.  Most common local area networks do support
  43.    broadcast; for example, Ethernet [7, 5], ChaosNet [10], token ring
  44.    networks [2], etc.
  45.  
  46.    We do not assume, however, that broadcasts are reliably delivered.
  47.    (One might consider providing a reliable broadcast protocol as a
  48.    layer above IP.) It is quite expensive to guarantee delivery of
  49.    broadcasts; instead, what we assume is that a host will receive most
  50.    of the broadcasts that are sent.  This is important to avoid
  51.    excessive use of broadcasts; since every host on the network devotes
  52.    at least some effort to every broadcast, they are costly.
  53.  
  54.  
  55.  
  56. Mogul                                                           [Page 1]
  57.  
  58.  
  59.  
  60. RFC 919                                                     October 1984
  61. Broadcasting Internet Datagrams
  62.  
  63.  
  64.    When a datagram is broadcast, it imposes a cost on every host that
  65.    hears it.  Therefore, broadcasting should not be used
  66.    indiscriminately, but rather only when it is the best solution to a
  67.    problem.
  68.  
  69.    Note: some organizations have divided their IP networks into subnets,
  70.    for which a standard [8] has been proposed.  This RFC does not cover
  71.    the numerous complications arising from the interactions between
  72.    subnets and broadcasting; see [9] for a complete discussion.
  73.  
  74. 2. Terminology
  75.  
  76.    Because broadcasting depends on the specific data link layer in use
  77.    on a local network, we must discuss it with reference to both
  78.    physical networks and logical networks.
  79.  
  80.    The terms we will use in referring to physical networks are, from the
  81.    point of view of the host sending or forwarding a broadcast:
  82.  
  83.    Local Hardware Network
  84.  
  85.       The physical link to which the host is attached.
  86.  
  87.    Remote Hardware Network
  88.  
  89.       A physical network which is separated from the host by at least
  90.       one gateway.
  91.  
  92.    Collection of Hardware Networks
  93.  
  94.       A set of hardware networks (transitively) connected by gateways.
  95.  
  96.    The IP world includes several kinds of logical network.  To avoid
  97.    ambiguity, we will use the following terms:
  98.  
  99.    Internet
  100.  
  101.       The DARPA Internet collection of IP networks.
  102.  
  103.    IP Network
  104.  
  105.       One or a collection of several hardware networks that have one
  106.       specific IP network number.
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113. Mogul                                                           [Page 2]
  114.  
  115.  
  116.  
  117. RFC 919                                                     October 1984
  118. Broadcasting Internet Datagrams
  119.  
  120.  
  121. 3. Why Broadcast?
  122.  
  123.    Broadcasts are useful when a host needs to find information without
  124.    knowing exactly what other host can supply it, or when a host wants
  125.    to provide information to a large set of hosts in a timely manner.
  126.  
  127.    When a host needs information that one or more of its neighbors might
  128.    have, it could have a list of neighbors to ask, or it could poll all
  129.    of its possible neighbors until one responds.  Use of a wired-in list
  130.    creates obvious network management problems (early binding is
  131.    inflexible).  On the other hand, asking all of one's neighbors is
  132.    slow if one must generate plausible host addresses, and try them
  133.    until one works.  On the ARPANET, for example, there are roughly 65
  134.    thousand plausible host numbers.  Most IP implementations have used
  135.    wired-in lists (for example, addresses of "Prime" gateways.)
  136.    Fortunately, broadcasting provides a fast and simple way for a host
  137.    to reach all of its neighbors.
  138.  
  139.    A host might also use a broadcast to provide all of its neighbors
  140.    with some information; for example, a gateway might announce its
  141.    presence to other gateways.
  142.  
  143.    One way to view broadcasting is as an imperfect substitute for
  144.    multicasting, the sending of messages to a subset of the hosts on a
  145.    network.  In practice, broadcasts are usually used where multicasts
  146.    are what is wanted; packets are broadcast at the hardware level, but
  147.    filtering software in the receiving hosts gives the effect of
  148.    multicasting.
  149.  
  150.    For more examples of broadcast applications, see [1, 3].
  151.  
  152. 4. Broadcast Classes
  153.  
  154.    There are several classes of IP broadcasting:
  155.  
  156.       - Single-destination datagram broadcast on the local IP net: A
  157.         datagrams is destined for a specific IP host, but the sending
  158.         host broadcasts it at the data link layer, perhaps to avoid
  159.         having to do routing.  Since this is not an IP broadcast, the IP
  160.         layer is not involved, except that a host should discard
  161.         datagrams not meant for it without becoming flustered (i.e.,
  162.         printing an error message).
  163.  
  164.       - Broadcast to all hosts on the local IP net: A distinguished
  165.         value for the host-number part of the IP address denotes
  166.         broadcast instead of a specific host.  The receiving IP layer
  167.         must be able to recognize this address as well as its own.
  168.  
  169.  
  170. Mogul                                                           [Page 3]
  171.  
  172.  
  173.  
  174. RFC 919                                                     October 1984
  175. Broadcasting Internet Datagrams
  176.  
  177.  
  178.         However, it might still be useful to distinguish at higher
  179.         levels between broadcasts and non-broadcasts, especially in
  180.         gateways. This is the most useful case of broadcast; it allows a
  181.         host to discover gateways without wired-in tables, it is the
  182.         basis for address resolution protocols, and it is also useful
  183.         for accessing such utilities as name servers, time servers,
  184.         etc., without requiring wired-in addresses.
  185.  
  186.       - Broadcast to all hosts on a remote IP network: It is
  187.         occasionally useful to send a broadcast to all hosts on a
  188.         non-local network; for example, to find the latest version of a
  189.         hostname database, to bootload a host on an IP network without a
  190.         bootserver, or to monitor the timeservers on the IP network.
  191.         This case is the same as local-network broadcasts; the datagram
  192.         is routed by normal mechanisms until it reaches a gateway
  193.         attached to the destination IP network, at which point it is
  194.         broadcast. This class of broadcasting is also known as "directed
  195.         broadcasting", or quaintly as sending a "letter bomb" [1].
  196.  
  197.       - Broadcast to the entire Internet: This is probably not useful,
  198.         and almost certainly not desirable.
  199.  
  200.    For reasons of performance or security, a gateway may choose not to
  201.    forward broadcasts; especially, it may be a good idea to ban
  202.    broadcasts into or out of an autonomous group of networks.
  203.  
  204. 5. Broadcast Methods
  205.  
  206.    A host's IP receiving layer must be modified to support broadcasting.
  207.    In the absence of broadcasting, a host determines if it is the
  208.    recipient of a datagram by matching the destination address against
  209.    all of its IP addresses.  With broadcasting, a host must compare the
  210.    destination address not only against the host's addresses, but also
  211.    against the possible broadcast addresses for that host.
  212.  
  213.    The problem of how best to send a broadcast has been extensively
  214.    discussed [1, 3, 4, 14, 15].  Since we assume that the problem has
  215.    already been solved at the data link layer, an IP host wishing to
  216.    send either a local broadcast or a directed broadcast need only
  217.    specify the appropriate destination address and send the datagram as
  218.    usual.  Any sophisticated algorithms need only reside in gateways.
  219.  
  220.  
  221.  
  222.  
  223.  
  224.  
  225.  
  226.  
  227. Mogul                                                           [Page 4]
  228.  
  229.  
  230.  
  231. RFC 919                                                     October 1984
  232. Broadcasting Internet Datagrams
  233.  
  234.  
  235. 6. Gateways and Broadcasts
  236.  
  237.    Most of the complexity in supporting broadcasts lies in gateways.  If
  238.    a gateway receives a directed broadcast for a network to which it is
  239.    not connected, it simply forwards it using the usual mechanism.
  240.    Otherwise, it must do some additional work.
  241.  
  242.    When a gateway receives a local broadcast datagram, there are several
  243.    things it might have to do with it.  The situation is unambiguous,
  244.    but without due care it is possible to create infinite loops.
  245.  
  246.    The appropriate action to take on receipt of a broadcast datagram
  247.    depends on several things: the subnet it was received on, the
  248.    destination network, and the addresses of the gateway.
  249.  
  250.       - The primary rule for avoiding loops is "never broadcast a
  251.         datagram on the hardware network it was received on". It is not
  252.         sufficient simply to avoid repeating datagrams that a gateway
  253.         has heard from itself; this still allows loops if there are
  254.         several gateways on a hardware network.
  255.  
  256.       - If the datagram is received on the hardware network to which it
  257.         is addressed, then it should not be forwarded.  However, the
  258.         gateway should consider itself to be a destination of the
  259.         datagram (for example, it might be a routing table update.)
  260.  
  261.       - Otherwise, if the datagram is addressed to a hardware network to
  262.         which the gateway is connected, it should be sent as a (data
  263.         link layer) broadcast on that network.  Again, the gateway
  264.         should consider itself a destination of the datagram.
  265.  
  266.       - Otherwise, the gateway should use its normal routing procedure
  267.         to choose a subsequent gateway, and send the datagram along to
  268.         it.
  269.  
  270. 7. Broadcast IP Addressing - Proposed Standards
  271.  
  272.    If different IP implementations are to be compatible, there must be a
  273.    distinguished number to denote "all hosts".
  274.  
  275.    Since the local network layer can always map an IP address into data
  276.    link layer address, the choice of an IP "broadcast host number" is
  277.    somewhat arbitrary.  For simplicity, it should be one not likely to
  278.    be assigned to a real host.  The number whose bits are all ones has
  279.    this property; this assignment was first proposed in [6].  In the few
  280.    cases where a host has been assigned an address with a host-number
  281.    part of all ones, it does not seem onerous to require renumbering.
  282.  
  283.  
  284. Mogul                                                           [Page 5]
  285.  
  286.  
  287.  
  288. RFC 919                                                     October 1984
  289. Broadcasting Internet Datagrams
  290.  
  291.  
  292.    The address 255.255.255.255 denotes a broadcast on a local hardware
  293.    network, which must not be forwarded.  This address may be used, for
  294.    example, by hosts that do not know their network number and are
  295.    asking some server for it.
  296.  
  297.    Thus, a host on net 36, for example, may:
  298.  
  299.       - broadcast to all of its immediate neighbors by using
  300.         255.255.255.255
  301.  
  302.       - broadcast to all of net 36 by using 36.255.255.255
  303.  
  304.    (Note that unless the network has been broken up into subnets, these
  305.    two methods have identical effects.)
  306.  
  307.    If the use of "all ones" in a field of an IP address means
  308.    "broadcast", using "all zeros" could be viewed as meaning
  309.    "unspecified".  There is probably no reason for such addresses to
  310.    appear anywhere but as the source address of an ICMP Information
  311.    Request datagram.  However, as a notational convention, we refer to
  312.    networks (as opposed to hosts) by using addresses with zero fields.
  313.    For example, 36.0.0.0 means "network number 36" while 36.255.255.255
  314.    means "all hosts on network number 36".
  315.  
  316.    7.1. ARP Servers and Broadcasts
  317.  
  318.       The Address Resolution Protocol (ARP) described in [12] can, if
  319.       incorrectly implemented, cause problems when broadcasts are used
  320.       on a network where not all hosts share an understanding of what a
  321.       broadcast address is.  The temptation exists to modify the ARP
  322.       server so that it provides the mapping between an IP broadcast
  323.       address and the hardware broadcast address.
  324.  
  325.       This temptation must be resisted.  An ARP server should never
  326.       respond to a request whose target is a broadcast address.  Such a
  327.       request can only come from a host that does not recognize the
  328.       broadcast address as such, and so honoring it would almost
  329.       certainly lead to a forwarding loop.  If there are N such hosts on
  330.       the physical network that do not recognize this address as a
  331.       broadcast, then a datagram sent with a Time-To-Live of T could
  332.       potentially give rise to T**N spurious re-broadcasts.
  333.  
  334.  
  335.  
  336.  
  337.  
  338.  
  339.  
  340.  
  341. Mogul                                                           [Page 6]
  342.  
  343.  
  344.  
  345. RFC 919                                                     October 1984
  346. Broadcasting Internet Datagrams
  347.  
  348.  
  349. 8. References
  350.  
  351.    1.   David Reeves Boggs.  Internet Broadcasting.  Ph.D. Th., Stanford
  352.         University, January 1982.
  353.  
  354.    2.   D.D. Clark, K.T. Pogran, and D.P. Reed.  "An Introduction to
  355.         Local Area Networks".  Proc. IEEE 66, 11, pp1497-1516, 1978.
  356.  
  357.    3.   Yogan Kantilal Dalal.  Broadcast Protocols in Packet Switched
  358.         Computer Networks.  Ph.D. Th., Stanford University, April 1977.
  359.  
  360.    4.   Yogan K. Dalal and Robert M. Metcalfe.  "Reverse Path Forwarding
  361.         of Broadcast Packets".  Comm. ACM 21, 12, pp1040-1048, December
  362.         1978.
  363.  
  364.    5.   The Ethernet, A Local Area Network: Data Link Layer and Physical
  365.         Layer Specifications.  Version 1.0, Digital Equipment
  366.         Corporation, Intel, Xerox, September 1980.
  367.  
  368.    6.   Robert Gurwitz and Robert Hinden.  IP - Local Area Network
  369.         Addressing Issues.  IEN-212, Bolt Beranek and Newman, September
  370.         1982.
  371.  
  372.    7.    R.M. Metcalfe and D.R. Boggs. "Ethernet: Distributed Packet
  373.         Switching for Local Computer Networks".  Comm. ACM 19, 7,
  374.         pp395-404, July 1976.  Also CSL-75-7, Xerox Palo Alto Research
  375.         Center, reprinted in CSL-80-2.
  376.  
  377.    8.   Jeffrey Mogul.  Internet Subnets.  RFC-917, Stanford University,
  378.         October 1984.
  379.  
  380.    9.   Jeffrey Mogul.  Broadcasting Internet Packets in the Presence of
  381.         Subnets.  RFC-922, Stanford University, October 1984.
  382.  
  383.    10.  David A. Moon.  Chaosnet.  A.I. Memo 628, Massachusetts
  384.         Institute of Technology Artificial Intelligence Laboratory, June
  385.         1981.
  386.  
  387.    11.  William W. Plummer.  Internet Broadcast Protocols.  IEN-10, Bolt
  388.         Beranek and Newman, March 1977.
  389.  
  390.    12.  David Plummer.  An Ethernet Address Resolution Protocol.
  391.         RFC-826, Symbolics, September 1982.
  392.  
  393.    13.  Jon Postel.  Internet Protocol.  RFC 791, ISI, September 1981.
  394.  
  395.  
  396.  
  397.  
  398. Mogul                                                           [Page 7]
  399.  
  400.  
  401.  
  402. RFC 919                                                     October 1984
  403. Broadcasting Internet Datagrams
  404.  
  405.  
  406.    14.  David W. Wall.  Mechanisms for Broadcast and Selective
  407.         Broadcast.  Ph.D. Th., Stanford University, June 1980.
  408.  
  409.    15.  David W. Wall and Susan S. Owicki.  Center-based Broadcasting.
  410.         Computer Systems Lab Technical Report TR189, Stanford
  411.         University, June 1980.
  412.  
  413.  
  414.  
  415.  
  416.  
  417.  
  418.  
  419.  
  420.  
  421.  
  422.  
  423.  
  424.  
  425.  
  426.  
  427.  
  428.  
  429.  
  430.  
  431.  
  432.  
  433.  
  434.  
  435.  
  436.  
  437.  
  438.  
  439.  
  440.  
  441.  
  442.  
  443.  
  444.  
  445.  
  446.  
  447.  
  448.  
  449.  
  450.  
  451.  
  452.  
  453.  
  454.  
  455. Mogul                                                           [Page 8]
  456.  
  457.